# 2024.11.01力扣网刷题
# 求出数字答案——数学——简单
# 给你三个 正 整数 num1 ，num2 和 num3 。
# 数字 num1 ，num2 和 num3 的数字答案 key 是一个四位数，定义如下：
# 一开始，如果有数字 少于 四位数，给它补 前导 0 。
# 答案 key 的第 i 个数位（1 <= i <= 4）为 num1 ，num2 和 num3 第 i 个数位中的 最小 值。
# 请你返回三个数字 没有 前导 0 的数字答案。
# 示例 1：
# 输入：num1 = 1, num2 = 10, num3 = 1000
# 输出：0
# 解释：
# 补前导 0 后，num1 变为 "0001" ，num2 变为 "0010" ，num3 保持不变，为 "1000" 。
# 数字答案 key 的第 1 个数位为 min(0, 0, 1) 。
# 数字答案 key 的第 2 个数位为 min(0, 0, 0) 。
# 数字答案 key 的第 3 个数位为 min(0, 1, 0) 。
# 数字答案 key 的第 4 个数位为 min(1, 0, 0) 。
# 所以数字答案为 "0000" ，也就是 0 。
# 示例 2：
# 输入： num1 = 987, num2 = 879, num3 = 798
# 输出：777
# 示例 3：
# 输入：num1 = 1, num2 = 2, num3 = 3
# 输出：1
# 提示：
# 1 <= num1, num2, num3 <= 9999

class Solution(object):
    def generateKey(self, num1, num2, num3):
        """
        :type num1: int
        :type num2: int
        :type num3: int
        :rtype: int
        """
        tmp1 = [0] * 4
        tmp2 = [0] * 4
        tmp3 = [0] * 4
        for i in range(3,-1,-1):
            tmp1[i] = num1 % 10
            tmp2[i] = num2 % 10
            tmp3[i] = num3 % 10
            num1 //= 10
            num2 //= 10
            num3 //= 10
        ans = 0
        for i in range(4):
            ans *= 10
            ans += min(tmp1[i], tmp2[i], tmp3[i])
        return ans
